home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / etc / init.d / pcmcia < prev    next >
Text File  |  2005-10-18  |  2KB  |  97 lines

  1. #!/sbin/runscript
  2. # Copyright 1999-2005 Gentoo Foundation
  3. # Distributed under the terms of the GNU General Public License v2
  4. # $Header: /var/cvsroot/gentoo-x86/sys-apps/pcmcia-cs/files/pcmcia-cs-3.2.8-init.d,v 1.2 2005/05/09 08:57:55 brix Exp $
  5.  
  6. RUN=/var/run
  7. SCHEME_FILE=${RUN}/pcmcia-scheme
  8.  
  9. depend() {
  10.     use coldplug
  11. }
  12.  
  13. cleanup() {
  14.     while read SN CLASS MOD INST DEV EXTRA; do
  15.         if [[ "${SN}" != "Socket" ]]; then
  16.             /etc/pcmcia/${CLASS} stop ${DEV} 2> /dev/null
  17.         fi
  18.     done
  19. }
  20.  
  21. pcmcia_probe() {
  22.     /sbin/modprobe ${1} ${2} 2> /dev/null
  23.     return ${?}
  24. }
  25.  
  26. start() {
  27.     local retval
  28.  
  29.     # Scheme is set for the /etc/pcmcia/shared script
  30.     if [[ -n "${SCHEME}" ]]; then
  31.         umask 022
  32.         echo ${SCHEME} > ${SCHEME_FILE}
  33.     else
  34.         umask 022
  35.         touch ${SCHEME_FILE}
  36.     fi
  37.  
  38.     # clean up any old interfaces
  39.     if [[ -r ${RUN}/stab ]]; then
  40.         cat ${RUN}/stab | cleanup
  41.     fi
  42.  
  43.     # if /var/lib/pcmcia exists (and sometimes it gets created
  44.     # accidentally if you run pcmcia-cs apps without the proper
  45.     # flags), then it will really confuse the process
  46.     if [[ -d /var/lib/pcmcia ]]; then
  47.         rm -rf /var/lib/pcmcia
  48.     fi
  49.  
  50.     if [[ -e /proc/bus/pccard ]]; then
  51.         einfo "PCMCIA support detected"
  52.     else
  53.         pcmcia_probe pcmcia_core ${CORE_OPTS}
  54.         if [[ -n "${PCIC}" ]]; then
  55.             if ! pcmcia_probe ${PCIC} ${PCIC_OPTS}; then
  56.                 ewarn "'modprobe ${PCIC}' failed"
  57.                 ewarn "Trying alternative PCIC driver: ${PCIC_ALT}"
  58.                 pcmcia_probe ${PCIC_ALT} ${PCIC_ALT_OPTS}
  59.             fi
  60.         fi
  61.         pcmcia_probe ds
  62.     fi
  63.  
  64.     ebegin "Starting pcmcia"
  65.     start-stop-daemon --start --quiet --exec /sbin/cardmgr -- \
  66.         -s ${RUN}/stab ${CARDMGR_OPTS}
  67.     retval=${?}
  68.  
  69.     if [[ ${retval} -gt 0 ]]; then
  70.         einfo "cardmgr failed to start.  Make sure that you have PCMCIA"
  71.         einfo "modules built or support compiled into the kernel"
  72.     fi
  73.  
  74.     eend ${retval}
  75. }
  76.  
  77. stop() {
  78.     local retval
  79.  
  80.     ebegin "Stopping pcmcia"
  81.  
  82.     [[ -w ${SCHEME_FILE} ]] && rm -f ${SCHEME_FILE}
  83.     start-stop-daemon --stop --quiet --pidfile /var/run/cardmgr.pid --retry 5
  84.     retval=${?}
  85.  
  86.     if [[ -e /proc/modules && -n $(fgrep "ds " /proc/modules | head -n1 | cut -c1) ]]; then
  87.         /sbin/rmmod ds 2> /dev/null
  88.         /sbin/rmmod ${PCIC} 2> /dev/null
  89.         /sbin/rmmod ${PCIC_ALT} 2> /dev/null
  90.         /sbin/rmmod pcmcia 2> /dev/null
  91.         /sbin/rmmod pcmcia_core 2> /dev/null
  92.     fi
  93.  
  94.     eend ${retval}
  95. }
  96.  
  97.